package d1026;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@SuppressWarnings("all")
//员工表数据访问类
public class EmpDao {
    public static void main(String[] args) throws  SQLException{
        EmpDao empDao = new EmpDao();
        empDao.query("S","C",null,null,null,null);
        System.out.println("----------------------------------");
        empDao.query("S",null,null,7698,null,null);
        System.out.println("----------------------------------");
    }
    //组合查询
    public List<Map<String,Object>> query(String ename,
                                          String job,Integer sal,Integer mgr,
                                          java.sql.Date beginHiredate,
                                          java.sql.Date endHiredate) throws SQLException {
        String sql = "select*from emp where 1=1";
        //参数集合
        List<Object> params = new ArrayList<>();

        //一般字符串类型的字段，使用模糊查询
        if(ename!=null){
            //每个拼接的条件前面加一个空格
            sql+="and ename like = ?";
            params.add("%"+ename+"%");
        }
        if (job!= null){
            sql+="and job like '%'||?||'%'";
            params.add(job);
        }
        if (sal != null){
            sql+="and sal = ?";
            params.add(mgr);
        }
        if (mgr!= null){
            sql+="and mgr = ?";
            params.add(mgr);
        }
        if (beginHiredate!= null){
            sql+="and hiredate >= ?";
            params.add(beginHiredate);
        }
        if (endHiredate!= null){
            sql+="and hiredate>= ?";
            params.add(endHiredate);
        }
        System.out.println(sql);
        System.out.println(params);
        return DBHelper.selectListMap(sql,params.toArray());
    }
}
